// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_VIEWS_WIDGET_DESKTOP_AURA_X11_MOVE_LOOP_DELEGATE_H_
#define UI_VIEWS_WIDGET_DESKTOP_AURA_X11_MOVE_LOOP_DELEGATE_H_

namespace views {

// Receives mouse events while the X11MoveLoop is tracking a drag.
class X11MoveLoopDelegate {
public:
    // Called when we receive a mouse move event.
    virtual void OnMouseMovement(const gfx::Point& screen_point,
        int flags,
        base::TimeDelta event_time)
        = 0;

    // Called when the mouse button is released.
    virtual void OnMouseReleased() = 0;

    // Called when the user has released the mouse button. The move loop will
    // release the grab after this has been called.
    virtual void OnMoveLoopEnded() = 0;
};

} // namespace views

#endif // UI_VIEWS_WIDGET_DESKTOP_AURA_X11_MOVE_LOOP_DELEGATE_H_
